﻿using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace PocketDOHS
{
    public partial class InformGerais : Form
    {
        private TextBox txtFocus;
        private int idade;
        private bool altera = false;

        public InformGerais()
        {
            InitializeComponent();
            txtID.Focus();
        }

        private void btnGravar_Click(object sender, EventArgs e)
        {
            if ((txtID.Text != "") && (txtGrupoEtn.Text != "") && (txtOcup.Text != "") && ((rdbFem.Checked) ||
                (rdbMasc.Checked)) && ((txtDia.Text.Length + txtMes.Text.Length + txtAno.Text.Length) == 8))
            {
                Dados.Guia.InfoGeral.ID = txtID.Text;
                Dados.Guia.InfoGeral.DataNasc.Value = txtDia.Text + "/" + txtMes.Text + "/" + txtAno.Text;
                Dados.Guia.InfoGeral.DataNasc.atb_Idade = txtIdade.Text;
                if ((idade <= 9))
                    Dados.Guia.InfoGeral.GrupoEtario = DesktopDOHS.appData.Schemas.st_GrupoEtario.Item1;
                else
                    if (idade <= 13)
                        Dados.Guia.InfoGeral.GrupoEtario = DesktopDOHS.appData.Schemas.st_GrupoEtario.Item2;
                    else
                        if (idade <= 25)
                            Dados.Guia.InfoGeral.GrupoEtario = DesktopDOHS.appData.Schemas.st_GrupoEtario.Item3;
                        else
                            if (idade >= 50)
                                Dados.Guia.InfoGeral.GrupoEtario = DesktopDOHS.appData.Schemas.st_GrupoEtario.Item4;
                            else
                                Dados.Guia.InfoGeral.GrupoEtario = DesktopDOHS.appData.Schemas.st_GrupoEtario.Item5;
                Dados.Guia.InfoGeral.GrupoEtnico = txtGrupoEtn.Text;
                if (rdbMasc.Checked)
                    Dados.Guia.InfoGeral.Sexo = "1";
                if (rdbFem.Checked)
                    Dados.Guia.InfoGeral.Sexo = "2";
                if (cbDupl.Checked)
                    Dados.Guia.InfoGeral.Duplicata = "1";
                else
                    Dados.Guia.InfoGeral.Duplicata = "0";
                Dados.Guia.InfoGeral.Ocupacao = txtOcup.Text;
                FormsMethods.VetForms[0].BringToFront();
            }
            else
                MessageBox.Show("Preencha Todos os Campos...", "ATENÇÃO!!");

        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            DialogResult dR = MessageBox.Show("Deseja " + btnCancelar.Text + " este Exame?", "Aviso!", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
            if (dR == DialogResult.Yes)
            {
                if (altera)
                {
                    Dados.addGuia();
                    altera = false;
                }
                FormsMethods.frmSubMenu.BringToFront();
                FormsMethods.resetForms();
            }
        }

        #region Changed

        private void WriteTextBox(object sender, EventArgs e)
        {
            FormsMethods.WriteTextBox((Button)sender, txtFocus, this);
        }

        private void TextBoxGotFocus(object sender, EventArgs e)
        {
            txtFocus = (TextBox)sender;
        }

        private void txtDataNasc_TextChanged(object sender, EventArgs e)
        {
            if (txtDia.Text.Length == txtDia.MaxLength)
                if ((Convert.ToInt32(txtDia.Text)) > 31)
                {
                    MessageBox.Show("Dia Inválido", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txtDia.Text = "";
                    txtDia.Focus();
                }
            if (txtMes.Text.Length == txtMes.MaxLength)
                if ((Convert.ToInt32(txtMes.Text)) > 12)
                {
                    MessageBox.Show("Mês Inválido", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txtMes.Text = "";
                    txtMes.Focus();
                }
            if (txtAno.Text.Length == txtAno.MaxLength)
                if (((Convert.ToInt32(txtAno.Text)) < 1900) || ((Convert.ToInt32(txtAno.Text)) > 2300))
                {
                    MessageBox.Show("Ano Inválido", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txtAno.Text = "";
                    txtAno.Focus();
                }
            if ((txtDia.Text.Length + txtMes.Text.Length + txtAno.Text.Length) == 8)
            {
                try
                {
                    DateTime dataNasc = Convert.ToDateTime(txtDia.Text + "/" + txtMes.Text + "/" + txtAno.Text);
                    idade = DateTime.Now.Year - dataNasc.Year;
                    if (DateTime.Now.Month < dataNasc.Month || (DateTime.Now.Month == dataNasc.Month && DateTime.Now.Day < dataNasc.Day))
                        idade--;
                    if (idade > 0)
                        txtIdade.Text = idade.ToString();
                    else
                    {
                        MessageBox.Show("Data de Nascimento Inválida", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                        txtAno.Text = "";
                        txtAno.Focus();
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("Data de Nascimento Inválida", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txtDia.Text = "";
                    txtMes.Text = "";
                    txtAno.Text = "";
                    txtDia.Focus();
                }
            }
        }

        private void rdbMascFem_CheckedChanged(object sender, EventArgs e)
        {
            txtGrupoEtn.Focus();
        }

        public void Limpar_txt_Form()
        {
            txtID.Text = "";
            txtDia.Text = "";
            txtMes.Text = "";
            txtAno.Text = "";
            txtIdade.Text = "";
            txtGrupoEtn.Text = "";
            txtOcup.Text = "";
            rdbFem.Checked = false;
            rdbMasc.Checked = false;
            cbDupl.Checked = false;
        }

        #endregion

        private void InformGerais_Activated(object sender, EventArgs e)
        {
            txtID.Focus();
        }
    }
}